package com.cloudsigns.factorymanager2.produce.model.produce_team;

import android.util.Log;

import com.cloudsigns.factorymanager2.MyApplicaton;
import com.cloudsigns.factorymanager2.engineering.utils.EngineeringUtil;
import com.cloudsigns.factorymanager2.produce.bean.WorkPartBean;
import com.cloudsigns.factorymanager2.project.utils.ConstantUtil;
import com.cloudsigns.factorymanager2.project.utils.ProjectUtil;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

public class WorkPartDetailModel implements IWorkPartDetailModel{

    @Override
    public void workPartDetail(final String orderId, final String productId, final String workPartId,final String workPartOrderId, final OnWorkPartDetailListener onWorkPartDetailListener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpClient client = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(ProjectUtil.WORKPART_DETAIL);
                HttpResponse response;
                try {
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("orderId", orderId);
                    jsonObject.put("productId", productId);
                    jsonObject.put("workPartId", workPartId);
                    jsonObject.put("workPartOrderId", workPartOrderId);
                    Log.e("WorkPartDetailModel", "jsonObject=" + jsonObject.toString());
                    Log.e("WorkPartDetailModel", "ProjectUtil=" + ProjectUtil.WORKPART_DETAIL);

                    StringEntity se = new StringEntity(jsonObject.toString(), HTTP.UTF_8);
                    httpPost.addHeader(HTTP.CONTENT_TYPE, ConstantUtil.CONTENT_TYPE);
                    httpPost.addHeader("token", MyApplicaton.getApplication().getToken());
                    httpPost.setEntity(se);
                    response = client.execute(httpPost);
                    String result = EntityUtils.toString(response.getEntity(), "UTF-8").trim();
                    JSONObject json = new JSONObject(result);
                    String code = json.getString("code");
                    Log.e("WorkPartDetailModel", "result=" + result);

                    if (null != onWorkPartDetailListener) {
                        if (code.equals(EngineeringUtil.HTTP_SUCCESSED_COD)) {
                            JSONObject dataJsonObj = new JSONObject(json.getString("data"));

                            WorkPartBean workPartBean=new WorkPartBean();
                            workPartBean.parseJson(dataJsonObj);

                            onWorkPartDetailListener.workPartDetailSuccessed(workPartBean);
                        } else {
                            String error_str = code;
                            error_str += "," + ConstantUtil.getErrorCode(code);
                            if (!json.isNull("error_str")) {
                                error_str += "," + json.getString("error_str");
                            }
                            onWorkPartDetailListener.workPartDetailFailed(error_str);
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {

                }
            }
        }).start();
    }

    public interface OnWorkPartDetailListener {

        void workPartDetailSuccessed(WorkPartBean workPartBean);

        void workPartDetailFailed(String desc);
    }
}
